The present invention is directed to image display and in particular to systems for refreshing a display device in accordance with a refresh memory.
Cathode-ray-tube (CRT), liquid-crystal-display (LCD), and some other types of display mechanisms employ periodic refreshing. In the case of a CRT display, for instance, an electron beam scans phosphors on the display screen at a rapid rate to keep the image visible. To this end, a refresh memory contains pixel data representing values of picture elements of which the image consist, and these data are fetched from memory in the order in which screen locations need to be xe2x80x9cpainted.xe2x80x9d
Particularly in the case of some small, hand-held displays, it is valuable to be able to vary the image display""s orientation. An image whose longer dimension is vertical is referred to as having a xe2x80x9cportraitxe2x80x9d orientation, while an image whose horizontal dimension is longer is referred to as having a xe2x80x9clandscapexe2x80x9d orientation.
As a typical image to be displayed does, the typical display device has one dimension that is longer than the other, and in some smaller displays it is convenient to allow the user to orient the display in either the portrait or the landscape orientation, in accordance with the particular image for which the display device is being used. Now, it is impractical from a hardware standpoint for the display device to have its scanning changed in accordance with the particular orientation in which the display device is held or mounted. That is, the display device is typically so made as to scan successive display locations along a scan line that extends in the display""s long-dimension direction, without regard to whether that direction is horizontal or vertical.
But, it is convenient from a programming standpoint to be able to refer to pixel locations in accordance with the intended image orientation: successive addresses should advance horizontally without regard to the display device""s scan direction. That is, it is convenient to be able to refer to pixel locations sequentially along a portrait-oriented image""s horizontal direction even though the display device will not retrieve image data from the memory in that sequence. This means that supporting hardware should compensate for display-device scan-direction changes so that they are transparent to that programmer.
One way of accomplishing this is to provide hardware that translates the programmer""s software addresses into memory locations whose sequence matches the display-devices scanning sequence, and there are some applications in which this approach is desirable. But it is sometimes preferred, from a hardware-design standpoint, not to be required to make such translations in real time, since update addresses can occur in random order, complicating the translation process.
I have therefore devised an approach that permits the update data to be stored in refresh-memory locations whose sequence matches the normal image-scanning sequence, not the hardware device""s scanning sequence. For fetching refresh data, I employ an address generator that repetitively advances its output values by a software-address row offset as it retrieves data for successive pixel locations along a display row. In accordance with the particular display row for which the data are being fetched, moreover, I reorder the bits fetched from a single memory location before using them for driving the display device. In this way, I am able to display the image data properly even though several pixels"" worth of data may have been stored in each memory location. In accordance with another aspect of the invention, I store successive image rows in commonly addressed locations of different memory modules so that a plurality of display pixels"" data in a given display row can be fetched simultaneously even though those data represent different image rows.